<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>Property Specification Language</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/Property_Specification_Language"> <link href="./mw/ext.pygments.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Property_Specification_Language rootpage-Property_Specification_Language skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">Property Specification Language</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr">
<p><b>Property Specification Language</b> (<b>PSL</b>) is a <a href="Temporal_logic" title="Temporal logic">temporal logic</a> extending <a href="Linear_temporal_logic" title="Linear temporal logic">linear temporal logic</a> with a range of operators for both ease of expression and enhancement of expressive power. PSL makes an extensive use of <a href="Regular_expressions" class="mw-redirect" title="Regular expressions">regular expressions</a> and syntactic sugaring. It is widely used in the hardware design and verification industry, where <a href="Formal_verification" title="Formal verification">formal verification</a> tools (such as <a href="Model_checking" title="Model checking">model checking</a>) and/or <a href="Logic_simulation" title="Logic simulation">logic simulation</a> tools are used to prove or refute that a given PSL formula holds on a given design.
</p><p>PSL was initially developed by <a href="Accellera" title="Accellera">Accellera</a> for specifying <a href="Property_(philosophy)" title="Property (philosophy)">properties</a> or <a href="Assertion_(computing)" class="mw-redirect" title="Assertion (computing)">assertions</a> about hardware designs. Since September 2004 the <a href="Standardization" title="Standardization">standardization</a> on the language has been done in <a href="IEEE" class="mw-redirect" title="IEEE">IEEE</a> 1850 working group. In September 2005, the IEEE 1850 Standard for Property Specification Language (PSL) was announced.
</p>
<meta property="mw:PageProp/toc">
<div class="mw-heading mw-heading2"><h2 id="Syntax_and_semantics">Syntax and semantics</h2></div>
<p>PSL can express that if some scenario happens now, then another scenario should happen some time later. For instance, the property "a <style data-mw-deduplicate="TemplateStyles:r886049734">
/* start https://en.wikipedia.org/ */
.mw-parser-output .monospaced{font-family:monospace,monospace}
/* end https://en.wikipedia.org/ */
</style><span class="monospaced">request</span> should always eventually be <span class="monospaced">grant</span>ed" can be expressed by the PSL formula:
</p>
<div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre> always (request -> eventually! grant)
</pre></div>
<p>The property "every <span class="monospaced">request</span> that is immediately followed by an <span class="monospaced">ack</span> signal, should be followed by a complete <span class="monospaced">data transfer</span>, where a complete data transfer is a sequence starting with signal <span class="monospaced">start</span>, ending with signal <span class="monospaced">end</span> in which <span class="monospaced">busy</span> holds at the meantime" can be expressed by the PSL formula:
</p>
<div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre> (true[*]; req; ack) |=> (start; busy[*]; end)
</pre></div>
<p>A trace satisfying this formula is given in the figure on the right.
</p>
<p>PSL's temporal operators can be roughly classified into <i>LTL-style</i> operators and <i>regular-expression-style</i> operators. Many PSL operators come in two versions, a strong version, indicated by an exclamation mark suffix ( <span class="monospaced">!</span> ), and a weak version. The <i>strong version</i> makes eventuality requirements (i.e. require that something will hold in the future), while the <i>weak version</i> does not. An <i>underscore suffix</i> ( <span class="monospaced">_</span> ) is used to differentiate <i>inclusive</i> vs. <i>non-inclusive</i> requirements. The <span class="monospaced">_a</span> and <span class="monospaced">_e</span> suffixes are used to denote <i>universal</i> (all) vs. <i>existential</i> (exists) requirements. Exact time windows are denoted by <span class="monospaced">[n]</span> and flexible by <span class="monospaced">[m..n]</span>.
</p>
<div class="mw-heading mw-heading3"><h3 id="SERE-style_operators">SERE-style operators</h3></div>
<p>The most commonly used PSL operator is the "suffix-implication" operator (also known as the "triggers" operator), which is denoted by <span class="monospaced">|=></span>. Its left operand is a PSL regular expression and its right operand is any PSL formula (be it in LTL style or regular expression style). The semantics of <span class="monospaced">r |=> p</span> is that on every time point i such that the sequence of time points up to i constitute a match to the regular expression r, the path from i+1 should satisfy the property p. This is exemplified in the figures on the right.
</p>
<p>The regular expressions of PSL have the common operators for concatenation (<span class="monospaced">;</span>), Kleene-closure (<span class="monospaced">*</span>), and union (<span class="monospaced">|</span>), as well as operator for fusion (<span class="monospaced">:</span>), intersection (<span class="monospaced">&&</span>) and a weaker version (<span class="monospaced">&</span>), and many variations for consecutive counting <span class="monospaced">[*n]</span> and in-consecutive counting e.g. <span class="monospaced">[=n]</span> and <span class="monospaced">[->n]</span>.
</p><p>The trigger operator comes in several variations, shown in the table below.
</p><p>Here <span class="monospaced">s</span> and <span class="monospaced">t</span> are PSL-regular expressions, and <span class="monospaced">p</span> is a PSL formula.
</p>
<table class="wikitable">
<tbody><tr>
<td><div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre> s |=> t!
</pre></div>
</td>
<td>if there is a match of s, then there is a match of t on the suffix of the trace,
<ul><li>t starts the cycle after s ends,</li>
<li>the match of t must reach to its end</li></ul>
</td></tr>
<tr>
<td><div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre> s |-> t!
</pre></div>
</td>
<td>if there is a match of s, then there is a match of t on the suffix of the trace,
<ul><li>t starts the same cycle that s ends,</li>
<li>the match of t must reach to its end</li></ul>
</td></tr>
<tr>
<td><div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre> s |=> t
</pre></div>
</td>
<td>if there is a match of s, then there is a match of t on the suffix of the trace,
<ul><li>t starts the cycle after s ends,</li>
<li>the match of t may "get stuck" in the middle</li></ul>
</td></tr>
<tr>
<td><div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre> s |-> t
</pre></div>
</td>
<td>if there is a match of s, then there is a match of t on the suffix of the trace,
<ul><li>t starts the same cycle that s ends,</li>
<li>the match of t may "get stuck" in the middle</li></ul>
</td></tr>
</tbody></table>
<p>Operators for concatenation, fusion, union, intersection and their variations are shown in the table below.
</p><p>Here <span class="monospaced">s</span> and <span class="monospaced">t</span> are PSL regular expressions.
</p>
<table class="wikitable">
<tbody><tr>
<td><code> s ; t </code>
</td>
<td>match of s followed by a match of t, t starts the cycle after s ends
</td></tr>
<tr>
<td><code>s : t </code>
</td>
<td>match of s followed by a match of t, t starts the same cycle that s ends
</td></tr>
<tr>
<td><code class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr">s | t</code>
</td>
<td>match of s or match of t
</td></tr>
<tr>
<td><code>s && t </code>
</td>
<td>match of s and match of t, duration of both is of same length
</td></tr>
<tr>
<td><code>s & t </code>
</td>
<td>match of s and match of t, duration matches maybe different
</td></tr>
<tr>
<td><code> s within t </code>
</td>
<td>match of s within a match of t, abbreviation of ([*]; s; [*]) && t
</td></tr>
</tbody></table>
<p>Operators for consecutive repetitions are shown in the table below.
</p><p>Here <span class="monospaced">s</span> is a PSL regular expression.
</p>
<table class="wikitable">
<tbody><tr>
<td><code> s[*i] </code>
</td>
<td>i consecutive repetitions of s
</td></tr>
<tr>
<td><code> s[*i..j] </code>
</td>
<td>between i to j consecutive repetitions of s
</td></tr>
<tr>
<td><code> s[*i..] </code>
</td>
<td>at least i to consecutive repetitions of s
</td></tr>
<tr>
<td><code> s[*] </code>
</td>
<td>zero or more consecutive repetitions of s
</td></tr>
<tr>
<td><code> s[+] </code>
</td>
<td>one or more consecutive repetitions of s
</td></tr>
</tbody></table>
<p>Operators for non-consecutive repetitions are shown in the table below.
</p><p>Here <span class="monospaced">b</span> is any PSL Boolean expression.
</p>
<table class="wikitable">
<tbody><tr>
<td><code> b[=i] </code>
</td>
<td>i not necessarily consecutive repetitions of b,
<ul><li>equivalent to (!b[*];b)[*i]; !b[*]</li></ul>
</td></tr>
<tr>
<td><code class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr">b[=i..j]</code>
</td>
<td>at least i and no more than j not necessarily consecutive repetitions of b,
<ul><li>equivalent to (!b[*];b)[*i..j]; !b[*]</li></ul>
</td></tr>
<tr>
<td><code> b[=i..] </code>
</td>
<td>at least i not necessarily consecutive repetitions of b,
<ul><li>equivalent to (!b[*];b)[*i..]; !b[*]</li></ul>
</td></tr>
<tr>
<td><code class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr">b[->m]</code>
</td>
<td>m not necessarily consecutive repetitions of b ending with b,
<ul><li>equivalent to (!b[*];b)[*m]</li></ul>
</td></tr>
<tr>
<td><code> b[->m:n] </code>
</td>
<td>at least m and no more than n not necessarily consecutive repetitions of b ending with b,
<ul><li>equivalent to (!b[*];b)[*m..n]</li></ul>
</td></tr>
<tr>
<td><code> b[->m..] </code>
</td>
<td>at least m not necessarily consecutive repetitions of b ending with b,
<ul><li>equivalent to (!b[*];b)[*m..]; !b[*]</li></ul>
</td></tr>
<tr>
<td><code> b[->] </code>
</td>
<td>shortcut for b[->1],
<ul><li>equivalent to (!b[*];b)</li></ul>
</td></tr>
</tbody></table>
<div class="mw-heading mw-heading3"><h3 id="LTL-style_operators">LTL-style operators</h3></div>
<p>Below is a sample of some LTL-style operators of PSL.
</p><p>Here <span class="monospaced">p</span> and <span class="monospaced">q</span> are any PSL formulas.
</p>
<table class="wikitable">
<tbody><tr>
<td><code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">always p</code>
</td>
<td>property p holds on every time point
</td></tr>
<tr>
<td><code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">never p</code>
</td>
<td>property p does not hold on any time point
</td></tr>
<tr>
<td><code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">eventually! p</code>
</td>
<td>there exists a future time point where p holds
</td></tr>
<tr>
<td><code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">next! p</code>
</td>
<td>there exists a next time point, and p holds on this point
</td></tr>
<tr>
<td><code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">next p</code>
</td>
<td>if there exists a next time point, then p holds on this point
</td></tr>
<tr>
<td><code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">next![n] p</code>
</td>
<td>there exists an n-th time point, and p holds on this point
</td></tr>
<tr>
<td><code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">next[n] p</code>
</td>
<td>if there exists an n-th time point, then p holds on this point
</td></tr>
<tr>
<td><code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">next_e![m..n] p</code>
</td>
<td>there exists a time point, within m-th to n-th from the current where p holds.
</td></tr>
<tr>
<td><code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">next_e[m..n] p</code>
</td>
<td>if there exists at least n-th time points, then p holds on one of the m-th to n-th points.
</td></tr>
<tr>
<td><code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">next_a![m..n] p</code>
</td>
<td>there exists at least n more time points and p holds in all the time points between the m-th to the n-th, inclusive.
</td></tr>
<tr>
<td><code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">next_a[m..n] p</code>
</td>
<td>p holds on all the next m-th through n-th time points, however many exist
</td></tr>
<tr>
<td><code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">p until! q</code>
</td>
<td>there exists a time point where q holds, and p hold up until that time point
</td></tr>
<tr>
<td><code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">p until q</code>
</td>
<td>p holds up until a time point where q hold, if such exists
</td></tr>
<tr>
<td><code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">p until!_ q</code>
</td>
<td>there exists a time point where q holds, and p holds up until that time point and in that time point
</td></tr>
<tr>
<td><code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">p until_ q</code>
</td>
<td>p holds up until a time point where q holds, and in that time point, if such exists
</td></tr>
<tr>
<td><code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">p before! q</code>
</td>
<td>p holds strictly before the time point where q holds, and p eventually holds
</td></tr>
<tr>
<td><code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">p before q</code>
</td>
<td>p holds strictly before the time point where q holds, if p never holds, then neither does q
</td></tr>
<tr>
<td><code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">p before!_ q</code>
</td>
<td>p holds before or at the same time point where q holds, and p eventually holds
</td></tr>
<tr>
<td><code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">p before_ q</code>
</td>
<td>p holds before or at the same time point where q holds, if p never holds, then neither does q
</td></tr>
</tbody></table>
<div class="mw-heading mw-heading3"><h3 id="Sampling_operator">Sampling operator</h3></div>
<p>Sometimes it is desirable to change the definition of the <i>next time-point</i>, for instance in multiply-clocked designs, or when a higher level of abstraction is desired. The <i>sampling operator</i> (also known as the <i>clock operator</i>), denoted <span class="monospaced">@</span>, is used for this purpose. The formula <span class="monospaced"> p @ c </span> where <span class="monospaced"> p</span> is a PSL formula and <span class="monospaced">c</span> a PSL Boolean expressions holds on a given path if <span class="monospaced"> p</span> on that path projected on the cycles in which <span class="monospaced"> c</span> holds, as exemplified in the figures to the right.
</p>
<p>The first property states that "every <span class="monospaced">request</span> that is immediately followed by an <span class="monospaced">ack</span> signal, should be followed by a complete <span class="monospaced">data transfer</span>, where a complete data transfer is a sequence starting with signal <span class="monospaced">start</span>, ending with signal <span class="monospaced">end</span> in which <span class="monospaced">data</span> should hold at least 8 times:
</p>
<div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre> (true[*]; req; ack) |=> (start; data[=8]; end)
</pre></div>
<p>But sometimes it is desired to consider only the cases where the above signals occur on a cycle where <span class="monospaced">clk</span> is high.
This is depicted in the second figure in which although the formula
</p>
<div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre> ((true[*]; req; ack) |=> (start; data[*3]; end)) @ clk
</pre></div>
<p>uses <span class="monospaced">data[*3]</span> and <span class="monospaced">[*n]</span> is consecutive repetition, the matching trace has 3 non-consecutive time points where <span class="monospaced">data</span> holds, but when considering only the time points where <span class="monospaced">clk</span> holds, the time points where <span class="monospaced">data</span> hold become consecutive.
</p>
<p>The semantics of formulas with nested @ is a little subtle. The interested reader is referred to [2].
</p>
<div class="mw-heading mw-heading3"><h3 id="Abort_operators">Abort operators</h3></div>
<p>PSL has several operators to deal with truncated paths (finite paths that may correspond to a prefix of the computation). Truncated paths occur in bounded-model checking, due to resets and in many other scenarios. The abort operators, specify how eventualities should be dealt with when a path has been truncated. They rely on the truncated semantics proposed in [1].
</p><p>Here <span class="monospaced">p</span> is any PSL formula and <span class="monospaced">b</span> is any PSL Boolean expression.
</p>
<table class="wikitable">
<tbody><tr>
<td><code> p async_abort b </code>
</td>
<td>either p holds or p does not fail up until b holds;
<ul><li>b recognized asynchronously</li></ul>
</td></tr>
<tr>
<td><code> p sync_abort b </code>
</td>
<td>either p holds or p does not fail up until b holds;
<ul><li>b recognized synchronously</li></ul>
</td></tr>
<tr>
<td><code> p abort b </code>
</td>
<td>equivalent to p async_abort b
</td></tr>
</tbody></table>
<div class="mw-heading mw-heading3"><h3 id="Expressive_power">Expressive power</h3></div>
<p>PSL subsumes the temporal logic <a href="Linear_temporal_logic" title="Linear temporal logic">LTL</a> and extends its expressive power to that of the <a href="Omega-regular_languages" class="mw-redirect" title="Omega-regular languages">omega-regular languages</a>. The augmentation in expressive power, compared to that of LTL, which has the expressive power of the star-free ω-regular expressions, can be attributed to the <i>suffix implication</i>, also known as the <i>triggers</i> operator, denoted "|->". The formula <i>r |-> f</i> where <i>r</i> is a regular expression and <i>f</i> is a temporal logic formula holds on a computation <i>w</i> if any prefix of <i>w</i> matching <i>r</i> has a continuation satisfying <i>f</i>. Other non-LTL operators of PSL are the <i>@</i> operator, for specifying multiply-clocked designs, the <i>abort</i> operators, for dealing with hardware resets, and <i>local variables</i> for succinctness.
</p>
<div class="mw-heading mw-heading3"><h3 id="Layers">Layers</h3></div>
<p>PSL is defined in 4 layers: the <i>Boolean layer</i>, the <i>temporal layer</i>, the <i>modeling layer</i> and the <i>verification layer</i>.
</p>
<ul><li>The <i>Boolean layer</i> is used for describing a current state of the design and is phrased using one of the above-mentioned HDLs.</li>
<li>The <i>temporal layer</i> consists of the temporal operators used to describe scenarios that span over time (possibly over an unbounded number of time units).</li>
<li>The <i>modeling layer</i> can be used to describe auxiliary state machines in a procedural manner.</li>
<li>The <i>verification layer</i> consists of directives to a verification tool (for instance to <i>assert</i> that a given property is correct or to <i>assume</i> that a certain set of properties is correct when verifying another set of properties).</li></ul>
<div class="mw-heading mw-heading3"><h3 id="Language_compatibility">Language compatibility</h3></div>
<p>Property Specification Language can be used with multiple electronic system design languages (HDLs) such as:
</p>
<ul><li><a href="VHDL" title="VHDL">VHDL</a> (IEEE 1076)</li>
<li><a href="Verilog" title="Verilog">Verilog</a> (IEEE 1364)</li>
<li><a href="SystemVerilog" title="SystemVerilog">SystemVerilog</a> (IEEE 1800)</li>
<li><a href="SystemC" title="SystemC">SystemC</a> (IEEE 1666) by <a href="Open_SystemC_Initiative" class="mw-redirect" title="Open SystemC Initiative">Open SystemC Initiative (OSCI)</a>.</li></ul>
<p>When PSL is used in conjunction with one of the above HDLs, its Boolean layer uses the operators of the respective HDL.
</p>
<div class="mw-heading mw-heading2"><h2 id="References">References</h2></div>
<ul><li><style data-mw-deduplicate="TemplateStyles:r1238218222">
/* start https://en.wikipedia.org/ */
.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("./mw/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("./mw/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("./mw/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("./mw/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}
/* end https://en.wikipedia.org/ */
</style><cite class="citation book cs1"><i>1850-2005 – IEEE Standard for Property Specification Language (PSL)</i>. 2005. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1109%2FIEEESTD.2005.97780">10.1109/IEEESTD.2005.97780</a>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>0-7381-4780-X</bdi>.</cite>
<ul><li>IEC 62531:2007 <cite class="citation book cs1"><i>62531-2007 – IEC 62531 Ed. 1 (2007-11) (IEEE Std 1850-2005): Standard for Property Specification Language (PSL)</i>. 2007. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1109%2FIEEESTD.2007.4408637">10.1109/IEEESTD.2007.4408637</a>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>978-0-7381-5727-6</bdi>.</cite></li></ul></li>
<li><cite class="citation book cs1"><i>1850-2010 – IEEE Standard for Property Specification Language (PSL)</i>. 2010. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1109%2FIEEESTD.2010.5446004">10.1109/IEEESTD.2010.5446004</a>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>978-0-7381-6255-3</bdi>.</cite>
<ul><li>IEC 62531:2012 <cite class="citation book cs1"><i>62531-2012 – IEC 62531:2012(E) (IEEE Std 1850-2010): Standard for Property Specification Language (PSL)</i>. 2012. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1109%2FIEEESTD.2012.6228486">10.1109/IEEESTD.2012.6228486</a>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>978-0-7381-7299-6</bdi>.</cite></li></ul></li>
<li><cite id="CITEREFEisnerFismanHavlicekLustig2003" class="citation book cs1">Eisner, Cindy; <a href="Dana_Fisman" title="Dana Fisman">Fisman, Dana</a>; Havlicek, John; Lustig, Yoad; McIsaac, Anthony; Van Campenhout, David (2003). <a rel="nofollow" class="external text" href="http://www.research.ibm.com/people/e/eisner/papers/cav49.pdf">"Reasoning with Temporal Logic on Truncated Paths"</a> <span class="cs1-format">(PDF)</span>. <i><a href="Computer_Aided_Verification" title="Computer Aided Verification">Computer Aided Verification</a></i>. Lecture Notes in Computer Science. Vol. 2725. p. 27. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1007%2F978-3-540-45069-6_3">10.1007/978-3-540-45069-6_3</a>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>978-3-540-40524-5</bdi>.</cite></li>
<li><cite id="CITEREFEisnerFismanHavlicekMcIsaac2003" class="citation book cs1">Eisner, Cindy; <a href="Dana_Fisman" title="Dana Fisman">Fisman, Dana</a>; Havlicek, John; McIsaac, Anthony; Van Campenhout, David (2003). <a rel="nofollow" class="external text" href="http://www.cis.upenn.edu/~fisman/documents/EFHMV_ICALP03_full.pdf">"The Definition of a Temporal Clock Operator"</a> <span class="cs1-format">(PDF)</span>. <i>Automata, Languages and Programming</i>. Lecture Notes in Computer Science. Vol. 2719. p. 857. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1007%2F3-540-45061-0_67">10.1007/3-540-45061-0_67</a>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>978-3-540-40493-4</bdi>.</cite></li></ul>
<div class="mw-heading mw-heading2"><h2 id="External_links">External links</h2></div>
<ul><li><a rel="nofollow" class="external text" href="http://www.eda.org/ieee-1850">IEEE 1850 working group</a></li>
<li><a rel="nofollow" class="external text" href="https://web.archive.org/web/20051210035642/http://standards.ieee.org/announcements/pr_1850psl.html">IEEE Announcement September 2005</a></li>
<li><a rel="nofollow" class="external text" href="http://www.accellera.org/">Accellera</a></li>
<li><a rel="nofollow" class="external text" href="http://www.project-veripage.com/psl_tutorial_1.php">Property Specification Language Tutorial</a></li>
<li><a rel="nofollow" class="external text" href="http://www.doulos.com/knowhow/psl/">Designers guide to PSL</a></li></ul>
<div class="mw-heading mw-heading3"><h3 id="Books_on_PSL">Books on PSL</h3></div>
<ul><li><a rel="nofollow" class="external text" href="http://www.systemverilog.us/psl_info.html">Using PSL/Sugar for Formal and Dynamic Verification 2nd Edition, Ben Cohen, Ajeetha Kumari, Srinivasan Venkataramanan</a></li>
<li><a rel="nofollow" class="external text" href="https://www.springer.com/engineering/circuits+%26+systems/book/978-0-387-35313-5">A Practical Introduction to PSL</a>, Cindy Eisner and <a href="Dana_Fisman" title="Dana Fisman">Dana Fisman</a></li></ul>
<div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r1129693374">
/* start https://en.wikipedia.org/ */
.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" · ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}
/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r1236075235">
/* start https://en.wikipedia.org/ */
.mw-parser-output .navbox{box-sizing:border-box;border:1px solid #a2a9b1;width:100%;clear:both;font-size:88%;text-align:center;padding:1px;margin:1em auto 0}.mw-parser-output .navbox .navbox{margin-top:0}.mw-parser-output .navbox+.navbox,.mw-parser-output .navbox+.navbox-styles+.navbox{margin-top:-1px}.mw-parser-output .navbox-inner,.mw-parser-output .navbox-subgroup{width:100%}.mw-parser-output .navbox-group,.mw-parser-output .navbox-title,.mw-parser-output .navbox-abovebelow{padding:0.25em 1em;line-height:1.5em;text-align:center}.mw-parser-output .navbox-group{white-space:nowrap;text-align:right}.mw-parser-output .navbox,.mw-parser-output .navbox-subgroup{background-color:#fdfdfd}.mw-parser-output .navbox-list{line-height:1.5em;border-color:#fdfdfd}.mw-parser-output .navbox-list-with-group{text-align:left;border-left-width:2px;border-left-style:solid}.mw-parser-output tr+tr>.navbox-abovebelow,.mw-parser-output tr+tr>.navbox-group,.mw-parser-output tr+tr>.navbox-image,.mw-parser-output tr+tr>.navbox-list{border-top:2px solid #fdfdfd}.mw-parser-output .navbox-title{background-color:#ccf}.mw-parser-output .navbox-abovebelow,.mw-parser-output .navbox-group,.mw-parser-output .navbox-subgroup .navbox-title{background-color:#ddf}.mw-parser-output .navbox-subgroup .navbox-group,.mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#e6e6ff}.mw-parser-output .navbox-even{background-color:#f7f7f7}.mw-parser-output .navbox-odd{background-color:transparent}.mw-parser-output .navbox .hlist td dl,.mw-parser-output .navbox .hlist td ol,.mw-parser-output .navbox .hlist td ul,.mw-parser-output .navbox td.hlist dl,.mw-parser-output .navbox td.hlist ol,.mw-parser-output .navbox td.hlist ul{padding:0.125em 0}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}body.skin--responsive .mw-parser-output .navbox-image img{max-width:none!important}@media print{body.ns-0 .mw-parser-output .navbox{display:none!important}}
/* end https://en.wikipedia.org/ */
</style></div><div role="navigation" class="navbox" aria-labelledby="Programmable_logic116" style="padding:3px"><table class="nowraplinks mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><style data-mw-deduplicate="TemplateStyles:r1239400231">
/* start https://en.wikipedia.org/ */
.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}
/* end https://en.wikipedia.org/ */
</style><div id="Programmable_logic116" style="font-size:114%;margin:0 4em"><a href="Programmable_logic_device" title="Programmable logic device">Programmable logic</a></div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">Concepts</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Application-specific_integrated_circuit" title="Application-specific integrated circuit">ASIC</a></li>
<li><a href="System_on_a_chip" title="System on a chip">SoC</a></li>
<li><a href="Field-programmable_gate_array" title="Field-programmable gate array">FPGA</a>
<ul><li><a href="Logic_block" title="Logic block">Logic block</a></li></ul></li>
<li><a href="Complex_programmable_logic_device" title="Complex programmable logic device">CPLD</a></li>
<li><a href="Programmable_logic_device#EPLDs" title="Programmable logic device">EPLD</a></li>
<li><a href="Programmable_logic_array" title="Programmable logic array">PLA</a></li>
<li><a href="Programmable_Array_Logic" title="Programmable Array Logic">PAL</a></li>
<li><a href="Generic_array_logic" class="mw-redirect" title="Generic array logic">GAL</a></li>
<li><a href="Cypress_PSoC" title="Cypress PSoC">PSoC</a></li>
<li><a href="Reconfigurable_computing" title="Reconfigurable computing">Reconfigurable computing</a>
<ul><li><a href="Xputer" title="Xputer">Xputer</a></li></ul></li>
<li><a href="Soft_microprocessor" title="Soft microprocessor">Soft microprocessor</a></li>
<li><a href="Circuit_underutilization" title="Circuit underutilization">Circuit underutilization</a></li>
<li><a href="High-level_synthesis" title="High-level synthesis">High-level synthesis</a></li>
<li><a href="Hardware_acceleration" title="Hardware acceleration">Hardware acceleration</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Hardware_description_language" title="Hardware description language">Languages</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Verilog" title="Verilog">Verilog</a>
<ul><li><a href="Verilog-A" title="Verilog-A">A</a></li>
<li><a href="Verilog-AMS" title="Verilog-AMS">AMS</a></li></ul></li>
<li><a href="VHDL" title="VHDL">VHDL</a>
<ul><li><a href="VHDL-AMS" title="VHDL-AMS">AMS</a></li>
<li><a href="VHDL-VITAL" class="mw-redirect" title="VHDL-VITAL">VITAL</a></li></ul></li>
<li><a href="SystemVerilog" title="SystemVerilog">SystemVerilog</a>
<ul><li><a href="SystemVerilog_DPI" title="SystemVerilog DPI">DPI</a></li></ul></li>
<li><a href="SystemC" title="SystemC">SystemC</a></li>
<li><a href="Altera_Hardware_Description_Language" title="Altera Hardware Description Language">AHDL</a></li>
<li><a href="Handel-C" title="Handel-C">Handel-C</a></li>
<li><a href="Lola_(computing)" title="Lola (computing)">Lola</a></li>
<li><a href="Unified_Power_Format" title="Unified Power Format">UPF</a></li>
<li><a href="PALASM" title="PALASM">PALASM</a></li>
<li><a href="Advanced_Boolean_Expression_Language" title="Advanced Boolean Expression Language">ABEL</a></li>
<li><a href="Programmable_Array_Logic#CUPL" title="Programmable Array Logic">CUPL</a></li>
<li><a href="C_to_HDL" title="C to HDL">C to HDL</a></li>
<li><a href="Flow_to_HDL" title="Flow to HDL">Flow to HDL</a></li>
<li><a href="MyHDL" title="MyHDL">MyHDL</a></li>
<li><a href="ELLA_(programming_language)" title="ELLA (programming language)">ELLA</a></li>
<li><a href="Chisel_(programming_language)" title="Chisel (programming language)">Chisel</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Companies</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Accellera" title="Accellera">Accellera</a></li>
<li><a href="Achronix" title="Achronix">Achronix</a></li>
<li><a href="AMD" title="AMD">AMD</a></li>
<li><a href="Aldec" title="Aldec">Aldec</a></li>
<li><a href="Arm_Holdings" title="Arm Holdings">Arm</a></li>
<li><a href="Cadence_Design_Systems" title="Cadence Design Systems">Cadence</a></li>
<li><a href="Infineon_Technologies" title="Infineon Technologies">Infineon</a></li>
<li><a href="Intel" title="Intel">Intel</a></li>
<li><a href="Lattice_Semiconductor" title="Lattice Semiconductor">Lattice</a></li>
<li><a href="Microchip_Technology" title="Microchip Technology">Microchip Technology</a></li>
<li><a href="NXP_Semiconductors" title="NXP Semiconductors">NXP</a></li>
<li><a href="Siemens" title="Siemens">Siemens</a></li>
<li><a href="Synopsys" title="Synopsys">Synopsys</a></li>
<li><a href="Texas_Instruments" title="Texas Instruments">Texas Instruments</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Products</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%">Hardware</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="ICE_(FPGA)" title="ICE (FPGA)">iCE</a></li>
<li><a href="Stratix" title="Stratix">Stratix</a></li>
<li><a href="Virtex_(FPGA)" title="Virtex (FPGA)">Virtex</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Software</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Intel_Quartus_Prime" class="mw-redirect" title="Intel Quartus Prime">Intel Quartus Prime</a></li>
<li><a href="Xilinx_ISE" title="Xilinx ISE">Xilinx ISE</a></li>
<li><a href="Vivado" title="Vivado">Vivado</a></li>
<li><a href="ModelSim" title="ModelSim">ModelSim</a></li>
<li><a href="Verilog-to-Routing" title="Verilog-to-Routing">VTR</a></li>
<li><a href="List_of_HDL_simulators" title="List of HDL simulators">Simulators</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Intellectual_property" title="Intellectual property">Intellectual<br>property</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Proprietary_hardware" title="Proprietary hardware">Proprietary</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="ARC_(processor)" title="ARC (processor)">ARC</a></li>
<li><a href="ARM_Cortex-M" title="ARM Cortex-M">ARM Cortex-M</a></li>
<li><a href="LEON" title="LEON">LEON</a></li>
<li><a href="LatticeMico8" title="LatticeMico8">LatticeMico8</a></li>
<li><a href="MicroBlaze" title="MicroBlaze">MicroBlaze</a></li>
<li><a href="PicoBlaze" title="PicoBlaze">PicoBlaze</a></li>
<li><a href="Nios_embedded_processor" title="Nios embedded processor">Nios</a></li>
<li><a href="Nios_II" title="Nios II">Nios II</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Open-source_hardware" title="Open-source hardware">Open-source</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Java_Optimized_Processor" title="Java Optimized Processor">JOP</a></li>
<li><a href="LatticeMico32" title="LatticeMico32">LatticeMico32</a></li>
<li><a href="OpenCores" title="OpenCores">OpenCores</a></li>
<li><a href="OpenRISC" title="OpenRISC">OpenRISC</a>
<ul><li><a href="OpenRISC_1200" title="OpenRISC 1200">1200</a></li></ul></li>
<li><a href="Power_ISA" title="Power ISA">Power ISA</a>
<ul><li><a href="Libre-SOC" title="Libre-SOC">Libre-SOC</a></li>
<li><a href="OpenPOWER_Microwatt" title="OpenPOWER Microwatt">Microwatt</a></li></ul></li>
<li><a href="RISC-V" title="RISC-V">RISC-V</a></li></ul>
</div></td></tr></tbody></table><div></div></td></tr></tbody></table><div></div></td></tr></tbody></table></div>
<div class="navbox-styles"></div><div role="navigation" class="navbox" aria-labelledby="IEEE_standards209" style="padding:3px"><table class="nowraplinks hlist mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><div id="IEEE_standards209" style="font-size:114%;margin:0 4em"><a href="IEEE_Standards_Association" title="IEEE Standards Association">IEEE standards</a></div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">Current</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="IEEE-488" class="mw-redirect" title="IEEE-488">488</a></li>
<li><a href="IEEE_693" title="IEEE 693">693</a></li>
<li><a href="Software_quality_assurance" title="Software quality assurance">730</a></li>
<li><a href="IEEE_754" title="IEEE 754">754</a>
<ul><li><a href="IEEE_754-2008_revision" title="IEEE 754-2008 revision">Revision</a></li></ul></li>
<li><a href="IEEE_854-1987" title="IEEE 854-1987">854</a></li>
<li><a href="Software_configuration_management" title="Software configuration management">828</a></li>
<li><a href="Software_test_documentation" title="Software test documentation">829</a></li>
<li><a href="Futurebus" title="Futurebus">896</a></li>
<li><a href="Single_UNIX_Specification" title="Single UNIX Specification">1003</a></li>
<li><a href="VMEbus" title="VMEbus">1014</a></li>
<li><a href="Software_design_description" title="Software design description">1016</a></li>
<li><a href="VHDL" title="VHDL">1076</a></li>
<li><a href="JTAG" title="JTAG">1149.1</a></li>
<li><a href="PILOT" title="PILOT">1154</a></li>
<li><a href="IEEE_1164" title="IEEE 1164">1164</a></li>
<li><a href="Open_Firmware" title="Open Firmware">1275</a></li>
<li><a href="Distributed_Interactive_Simulation" title="Distributed Interactive Simulation">1278</a></li>
<li><a href="IEEE_1284" title="IEEE 1284">1284</a></li>
<li><a href="IEEE_1355" title="IEEE 1355">1355</a></li>
<li><a href="IEEE_1394" title="IEEE 1394">1394</a></li>
<li><a href="IEEE_1451" title="IEEE 1451">1451</a></li>
<li><a href="Standard_Delay_Format" title="Standard Delay Format">1497</a></li>
<li><a href="High_Level_Architecture" title="High Level Architecture">1516</a></li>
<li><a href="IEEE_1541-2002" class="mw-redirect" title="IEEE 1541-2002">1541</a></li>
<li><a href="IEEE_1547" title="IEEE 1547">1547</a></li>
<li><a href="IEEE_1584" title="IEEE 1584">1584</a></li>
<li><a href="Precision_Time_Protocol" title="Precision Time Protocol">1588</a></li>
<li><a href="Scalable_Coherent_Interface" title="Scalable Coherent Interface">1596</a></li>
<li><a href="Advanced_Library_Format" title="Advanced Library Format">1603</a></li>
<li><a href="IEEE_1613" title="IEEE 1613">1613</a></li>
<li><a href="IEEE_1619" class="mw-redirect" title="IEEE 1619">1619</a></li>
<li><a href="SystemC" title="SystemC">1666</a></li>
<li><a href="IEEE_1667" title="IEEE 1667">1667</a></li>
<li><a href="IEEE_1675-2008" title="IEEE 1675-2008">1675</a></li>
<li><a href="IP-XACT" title="IP-XACT">1685</a></li>
<li><a href="IEEE_1722" class="mw-redirect" title="IEEE 1722">1722</a></li>
<li><a href="IEEE_1733" class="mw-redirect" title="IEEE 1733">1733</a></li>
<li><a href="SystemVerilog" title="SystemVerilog">1800</a></li>
<li><a href="Unified_Power_Format" title="Unified Power Format">1801</a></li>
<li><a href="DNP3" title="DNP3">1815</a></li>
<li><a href="IEEE_1849" title="IEEE 1849">1849</a></li>
<li><a href="IEEE_1855" title="IEEE 1855">1855</a></li>
<li><a href="DySPAN" title="DySPAN">1900</a></li>
<li><a href="IEEE_1901" title="IEEE 1901">1901</a></li>
<li><a href="RuBee" title="RuBee">1902</a></li>
<li><a href="Service_Interoperability_in_Ethernet_Passive_Optical_Networks" title="Service Interoperability in Ethernet Passive Optical Networks">1904</a></li>
<li><a href="IEEE_1905" title="IEEE 1905">1905</a></li>
<li><a href="IEEE_2030" title="IEEE 2030">2030</a></li>
<li><a href="Micro_T-Kernel" title="Micro T-Kernel">2050</a></li>
<li><a href="ISO/IEEE_11073" title="ISO/IEEE 11073">11073</a></li>
<li><a href="ISO/IEC_12207" title="ISO/IEC 12207">12207</a></li>
<li><a href="Software_maintenance" title="Software maintenance">14764</a></li>
<li><a href="Risk_management" title="Risk management">16085</a></li>
<li><a href="Project_management" title="Project management">16326</a></li>
<li><a href="Requirements_engineering" title="Requirements engineering">29148</a></li>
<li><a href="ISO/IEC_42010" title="ISO/IEC 42010">42010</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="IEEE_802" title="IEEE 802">802 series</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%"><a href="IEEE_802" title="IEEE 802">802</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="IEEE_802.2" title="IEEE 802.2">.2</a></li>
<li><a href="Token_bus_network" title="Token bus network">.4</a></li>
<li><a href="Token_Ring" title="Token Ring">.5</a></li>
<li><a href="IEEE_802.6" title="IEEE 802.6">.6</a></li>
<li><a href="IEEE_802.7" title="IEEE 802.7">.7</a></li>
<li><a href="IEEE_802.8" title="IEEE 802.8">.8</a></li>
<li><a href="IEEE_802.9" title="IEEE 802.9">.9</a></li>
<li><a href="IEEE_802.10" title="IEEE 802.10">.10</a></li>
<li><a href="100BaseVG" title="100BaseVG">.12</a></li>
<li><a href="Cable_modem#IEEE_802.14" title="Cable modem">.14</a></li>
<li><a href="IEEE_802.16" title="IEEE 802.16">.16</a>
<ul><li><a href="WiMAX" title="WiMAX">WiMAX · d · e</a></li></ul></li>
<li><a href="Resilient_Packet_Ring" title="Resilient Packet Ring">.17</a></li>
<li><a href="IEEE_802.18" title="IEEE 802.18">.18</a></li>
<li><a href="IEEE_802.20" title="IEEE 802.20">.20</a></li>
<li><a href="IEEE_802.21" title="IEEE 802.21">.21</a></li>
<li><a href="IEEE_802.22" title="IEEE 802.22">.22</a></li>
<li>.24</li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="IEEE_802.1" title="IEEE 802.1">802.1</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="IEEE_802.1D" title="IEEE 802.1D">D</a></li>
<li><a href="IEEE_P802.1p" title="IEEE P802.1p">p</a></li>
<li><a href="IEEE_802.1Q" title="IEEE 802.1Q">Q</a></li>
<li><a href="IEEE_802.1Qav" class="mw-redirect" title="IEEE 802.1Qav">Qav</a></li>
<li><a href="Stream_Reservation_Protocol" title="Stream Reservation Protocol">Qat</a></li>
<li><a href="Provider_Backbone_Bridge_Traffic_Engineering" title="Provider Backbone Bridge Traffic Engineering">Qay</a></li>
<li><a href="Data_center_bridging#IEEE_Task_Group" title="Data center bridging">Qaz</a></li>
<li><a href="IEEE_802.1Qbb" class="mw-redirect" title="IEEE 802.1Qbb">Qbb</a></li>
<li><a href="Spanning_Tree_Protocol" title="Spanning Tree Protocol">w</a></li>
<li><a href="IEEE_802.1X" title="IEEE 802.1X">X</a></li>
<li><a href="Link_Layer_Discovery_Protocol" title="Link Layer Discovery Protocol">AB</a></li>
<li><a href="IEEE_802.1ad" title="IEEE 802.1ad">ad</a></li>
<li><a href="IEEE_802.1AE" title="IEEE 802.1AE">AE</a></li>
<li><a href="IEEE_802.1ag" title="IEEE 802.1ag">ag</a></li>
<li><a href="IEEE_802.1ah-2008" class="mw-redirect" title="IEEE 802.1ah-2008">ah</a></li>
<li><a href="Multiple_Registration_Protocol" title="Multiple Registration Protocol">ak</a></li>
<li><a href="IEEE_802.1aq" title="IEEE 802.1aq">aq</a></li>
<li><a href="IEEE_802.1AS" class="mw-redirect" title="IEEE 802.1AS">AS</a></li>
<li><a href="Link_aggregation" title="Link aggregation">AX</a> (<a href="Link_Aggregation_Control_Protocol" class="mw-redirect" title="Link Aggregation Control Protocol">LACP</a>)</li>
<li><a href="Audio_Video_Bridging" title="Audio Video Bridging">BA</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="IEEE_802.3" title="IEEE 802.3">802.3</a> <br>(<a href="Ethernet" title="Ethernet">Ethernet</a>)</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="10BASE5" title="10BASE5">-1983</a></li>
<li><a href="802.3a" class="mw-redirect" title="802.3a">a</a></li>
<li><a href="802.3b" class="mw-redirect" title="802.3b">b</a></li>
<li><a href="802.3d" class="mw-redirect" title="802.3d">d</a></li>
<li><a href="802.3e" class="mw-redirect" title="802.3e">e</a></li>
<li><a href="802.3i" class="mw-redirect" title="802.3i">i</a></li>
<li><a href="802.3j" class="mw-redirect" title="802.3j">j</a></li>
<li><a href="802.3u" class="mw-redirect" title="802.3u">u</a></li>
<li><a href="IEEE_802.3x" class="mw-redirect" title="IEEE 802.3x">x</a></li>
<li><a href="802.3y" class="mw-redirect" title="802.3y">y</a></li>
<li><a href="802.3z" class="mw-redirect" title="802.3z">z</a></li>
<li><a href="802.3ab" class="mw-redirect" title="802.3ab">ab</a></li>
<li><a href="802.3ac" class="mw-redirect" title="802.3ac">ac</a></li>
<li><a href="802.3ad" class="mw-redirect" title="802.3ad">ad</a></li>
<li><a href="802.3ae" class="mw-redirect" title="802.3ae">ae</a></li>
<li><b><a href="802.3af" class="mw-redirect" title="802.3af">af</a></b></li>
<li><a href="802.3ah" class="mw-redirect" title="802.3ah">ah</a></li>
<li><a href="802.3ak" class="mw-redirect" title="802.3ak">ak</a></li>
<li><a href="802.3an" class="mw-redirect" title="802.3an">an</a></li>
<li><a href="802.3aq" class="mw-redirect" title="802.3aq">aq</a></li>
<li><b><a href="802.3at" class="mw-redirect" title="802.3at">at</a></b></li>
<li><a href="802.3au" class="mw-redirect" title="802.3au">au</a></li>
<li><a href="802.3av" class="mw-redirect" title="802.3av">av</a></li>
<li><a href="802.3az" class="mw-redirect" title="802.3az">az</a></li>
<li><a href="802.3ba" class="mw-redirect" title="802.3ba">ba</a></li>
<li><b><a href="802.3bt" class="mw-redirect" title="802.3bt">bt</a></b></li>
<li><a href="802.3bu" class="mw-redirect" title="802.3bu">bu</a></li>
<li><a href="802.3by" class="mw-redirect" title="802.3by">by</a></li>
<li><a href="802.3bz" class="mw-redirect" title="802.3bz">bz</a></li>
<li>ca</li>
<li>cb</li>
<li>cc</li>
<li>cd</li>
<li>ce</li>
<li><a href="802.3cg" class="mw-redirect" title="802.3cg">cg</a></li>
<li><a href="802.3ch" class="mw-redirect" title="802.3ch">ch</a></li>
<li>ck</li>
<li>cm</li>
<li>cn</li>
<li>cp</li>
<li><a href="802.3cq" class="mw-redirect" title="802.3cq">cq</a></li>
<li>cr</li>
<li>cs</li>
<li>ct</li>
<li>cu</li>
<li><a href="802.3cv" class="mw-redirect" title="802.3cv">cv</a></li>
<li>cw</li>
<li>cx</li>
<li>cy</li>
<li>cz</li>
<li>da</li>
<li>db</li>
<li><a href="802.3dd" class="mw-redirect" title="802.3dd">dd</a></li>
<li>de</li>
<li>df</li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="IEEE_802.11" title="IEEE 802.11">802.11</a> <br>(<a href="Wi-Fi" title="Wi-Fi">Wi-Fi</a>)</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="IEEE_802.11-1997" class="mw-redirect" title="IEEE 802.11-1997">-1997</a></li>
<li><a href="IEEE_802.11_(legacy_mode)" title="IEEE 802.11 (legacy mode)">legacy mode</a></li>
<li><a href="IEEE_802.11a-1999" title="IEEE 802.11a-1999">a</a></li>
<li><a href="IEEE_802.11b-1999" title="IEEE 802.11b-1999">b</a></li>
<li><a href="IEEE_802.11c" title="IEEE 802.11c">c</a></li>
<li><a href="IEEE_802.11d-2001" title="IEEE 802.11d-2001">d</a></li>
<li><a href="IEEE_802.11e-2005" title="IEEE 802.11e-2005">e</a></li>
<li><a href="Inter-Access_Point_Protocol" title="Inter-Access Point Protocol">f</a></li>
<li><a href="IEEE_802.11g-2003" title="IEEE 802.11g-2003">g</a></li>
<li><a href="IEEE_802.11h-2003" title="IEEE 802.11h-2003">h</a></li>
<li><a href="IEEE_802.11i-2004" title="IEEE 802.11i-2004">i</a></li>
<li><a href="IEEE_802.11j-2004" title="IEEE 802.11j-2004">j</a></li>
<li><a href="IEEE_802.11k-2008" title="IEEE 802.11k-2008">k</a></li>
<li><b><a href="IEEE_802.11n-2009" title="IEEE 802.11n-2009">n</a></b> (<a href="Wi-Fi_4" class="mw-redirect" title="Wi-Fi 4">Wi-Fi 4</a>)</li>
<li><a href="IEEE_802.11p" title="IEEE 802.11p">p</a></li>
<li><a href="IEEE_802.11r-2008" title="IEEE 802.11r-2008">r</a></li>
<li><a href="IEEE_802.11s" title="IEEE 802.11s">s</a></li>
<li><a href="IEEE_802.11u" title="IEEE 802.11u">u</a></li>
<li><a href="IEEE_802.11v" class="mw-redirect" title="IEEE 802.11v">v</a></li>
<li><a href="IEEE_802.11w-2009" title="IEEE 802.11w-2009">w</a></li>
<li><a href="IEEE_802.11y-2008" title="IEEE 802.11y-2008">y</a></li>
<li><a href="IEEE_802.11z" class="mw-redirect" title="IEEE 802.11z">z</a></li>
<li>aa</li>
<li><b><a href="IEEE_802.11ac" class="mw-redirect" title="IEEE 802.11ac">ac</a></b> (<a href="Wi-Fi_5" class="mw-redirect" title="Wi-Fi 5">Wi-Fi 5</a>)</li>
<li><a href="IEEE_802.11ad" title="IEEE 802.11ad">ad</a> (<a href="WiGig" title="WiGig">WiGig</a>)</li>
<li>ae</li>
<li><a href="IEEE_802.11af" title="IEEE 802.11af">af</a></li>
<li><a href="IEEE_802.11ah" title="IEEE 802.11ah">ah</a></li>
<li><a href="IEEE_802.11ai" title="IEEE 802.11ai">ai</a></li>
<li><a href="IEEE_802.11aj" class="mw-redirect" title="IEEE 802.11aj">aj</a></li>
<li>ak</li>
<li>aq</li>
<li><b><a href="IEEE_802.11ax" class="mw-redirect" title="IEEE 802.11ax">ax</a></b> (<a href="Wi-Fi_6" title="Wi-Fi 6">Wi-Fi 6</a>)</li>
<li><a href="IEEE_802.11ay" title="IEEE 802.11ay">ay</a></li>
<li>az</li>
<li>ba</li>
<li><a href="IEEE_802.11bb" title="IEEE 802.11bb">bb</a></li>
<li>bc</li>
<li>bd</li>
<li><b><a href="IEEE_802.11be" class="mw-redirect" title="IEEE 802.11be">be</a></b> (<a href="Wi-Fi_7" title="Wi-Fi 7">Wi-Fi 7</a>)</li>
<li>bf</li>
<li>bh</li>
<li>bi</li>
<li>bk</li>
<li><b><a href="IEEE_802.11bn" title="IEEE 802.11bn">bn</a></b> (Wi-Fi 8)</li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="IEEE_802.15" title="IEEE 802.15">802.15</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="IEEE_802.15.1" class="mw-redirect" title="IEEE 802.15.1">.1</a> (<a href="Bluetooth" title="Bluetooth">Bluetooth</a>)</li>
<li><a href="IEEE_802.15.2" class="mw-redirect" title="IEEE 802.15.2">.2</a></li>
<li><a href="IEEE_802.15.3" class="mw-redirect" title="IEEE 802.15.3">.3</a></li>
<li><a href="IEEE_802.15.4" title="IEEE 802.15.4">.4</a> (<a href="Zigbee" title="Zigbee">Zigbee</a>)</li>
<li><a href="IEEE_802.15.4a" title="IEEE 802.15.4a">.4a</a></li>
<li>.4b</li>
<li>.4c</li>
<li>.4d</li>
<li>.4e</li>
<li>.4f</li>
<li>.4g</li>
<li>.4z</li>
<li><a href="IEEE_802.15.5" class="mw-redirect" title="IEEE 802.15.5">.5</a></li>
<li><a href="IEEE_802.15.6" title="IEEE 802.15.6">.6</a></li>
<li><a href="IEEE_802.15.7" class="mw-redirect" title="IEEE 802.15.7">.7</a></li></ul>
</div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Proposed</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="IEEE_P1363" title="IEEE P1363">P1363</a></li>
<li><a href="IEEE_P1619" title="IEEE P1619">P1619</a></li>
<li><a href="Rosetta-lang" title="Rosetta-lang">P1699</a></li>
<li><a href="Universal_Power_Adapter_for_Mobile_Devices" title="Universal Power Adapter for Mobile Devices">P1823</a></li>
<li><a href="IEEE_P1906.1" title="IEEE P1906.1">P1906.1</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Superseded</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="IEEE_754-1985" title="IEEE 754-1985">754-1985</a></li>
<li><a href="Software_requirements_specification" title="Software requirements specification">830</a></li>
<li><a href="IEEE_1219" class="mw-redirect" title="IEEE 1219">1219</a></li>
<li><a href="Software_requirements_specification" title="Software requirements specification">1233</a></li>
<li><a href="Concept_of_operations" title="Concept of operations">1362</a></li>
<li><a href="Verilog" title="Verilog">1364</a></li>
<li><a href="IEEE_1471" title="IEEE 1471">1471</a></li></ul>
</div></td></tr><tr><td class="navbox-abovebelow" colspan="2"><div>
<ul><li><span class="noviewer" typeof="mw:File"><span title="Category"></span></span> Category</li></ul>
</div></td></tr></tbody></table></div></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2025-08-07" href="https://en.wikipedia.org/wiki/?title=Property_Specification_Language&oldid=1304691075">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
</body></html>